package com.proxy.custom.demo;

/**
 * DesignPatterns
 *
 * @Title: com.proxy.jdkProxy2
 * @Date: 2021/1/10 0010 9:53
 * @Author: wfg
 * @Description:
 * @Version:
 */
public class Client  {
    public static void main(String[] args) {
        MyInvocationHandler myInvocationHandler = new MyInvocationHandler(new RealSubject1());
        ISubject subject = (ISubject) myInvocationHandler.getInstance();
        subject.action();

        MyInvocationHandler myInvocationHandler2 = new MyInvocationHandler(new RealSubject2());
        ISubject subject1 = (ISubject) myInvocationHandler2.getInstance();
        subject1.action();
        //从上面的2块代码我们可以看出 如果我们要替换实现类只需要替换实现类
        //spring又是不用我们管理bean,我们只需要把实现的bean交个spring管理即可,这样我们就非常容易理解
        //spring的所有的扩展功能了,定义好接口后,根据不同的实现锁定实现类,走动态代理即可
    }
}
